iT邦幫忙

2024 iThome 鐵人賽

DAY 2
0
自我挑戰組

從零開始學Python系列 第 2

[Day2] Python資料型別

  • 分享至 

  • xImage
  •  

Python的資料型別有很多種,依照型別大致可以分為:

  1. 數值型別:bool(布林)、int(整數)、float(浮點數)
  2. 序列型別:list(列表)、tuple(元組)、range(範圍)
  3. 文字序列型別:str(字串)
  4. Mapping型別:dict(字典)

Boolean(布林)運算 --- and, or, not

  1. 布林值boolean(bool)
    在Python中,布林值有两個可能的值:
  • True:布林真值
  • False:布林假值
  1. 布林運算
  • and:只有在第一個引數為真時,才會對第二個引數求值
a = True
b = False
result = a and b  #result為False,因為b為False
print(result) 
  • or:只有在第一個引數為假時,才會對第二個引數求值
a = True
b = False
result = a or b  #result為True,因為a為True
print(result) 
  • not:
a = True
b = False
result = not a  #result為False,因為a為True,其反面為False
print(result)

數值型別 --- int、float

  1. int:整數 integer
x = 10
print(type(x)) #透過type()的函數,可以得知x為整數
#結果為<class 'int'>

int()可以用來產生特定型別的數字

x = 123.456
print(int(123.456))
#結果為123,將浮點數轉換為整數
  1. float:浮點數 floating-point
x = 123.456
print(type(x)) #透過type()的函數,可以得知x為浮點數
#結果為<class 'float'>

float()可以將是字串的引數轉換為數值,但它必須是包含十進位制數字的字

x = 1e-003
print(float(x))
#結果為0.001

更多寫法可以參考:class float

序列型別 --- list, tuple, range

  1. list:
    定義:列表,是一種可變的序列類型,允許存儲多個項目(元素),這些元素可以是不同的數據類型。
  • 使用方括號 [] 創建
list_1 = [1, 2, 3, 'apple', 'banana']
list_1[0] #結果為1(順序從0開始算)
list_1[3] #結果為'apple'
list_1[1:4] #獲取從第1到3項的子列表,結果為[2, 3, 'apple']
  • 使用 list() 創建
list_2 = list((1, 2, 3, 'apple', 'banana')) 
list_2[0] #結果為1(順序從0開始算)
list_2[3] #結果為'apple'
list_2[1:4] #獲取從第1到3項的子列表,結果為[2, 3, 'apple']
  1. tuple:元組,是一種不可變的序列類型。一旦創建,元組的內容不能被修改。
  • 使用圓括號 () 創建
tuple_1 = (1, 2, 3, 'apple', 'banana')
tuple_1[3] #結果為'apple'
tuple_1[1:4] #獲取從第1到3項的子元組,結果為(2, 3, 'apple')
  • 使用 tuple() 函數創建 : 要從列表來創立
tuple_2 = tuple([1, 2, 3, 'apple', 'banana'])  # 從列表創建
tuple_2[3] #結果為'apple'
tuple_2[1:4] #獲取從第1到3項的子元組,結果為(2, 3, 'apple')
  1. range:範圍,是一種生成範圍內數字的序列。它用於循環,生成一系列連續的整數。是不可變的序列。
  • 使用 range() 函數創建範圍
r1 = range(10)  # 創建一個從0到9的範圍
  • 指定起始值和結束值
r2 = range(1, 11)  # 創建一個從1到10的範圍
  • 指定範圍
r3 = range(0, 11, 2)  # 創建一個從0到10(不包括11),長度為2的範圍

文字序列型別 --- str
定義:用於表示文本。字串由一個或多個字符組成,這些字符可以是字母、數字、符號或其他字符。

  • 可以使用單引號或雙引號創建
str1 = 'Hello, World!'  # 使用單引號
str2 = "Hello, World!"  # 使用雙引號
  • 三重引號適用於多行的字串
str3 = '''This is a 
multi-line string.''' 
str4 = """This is a 
multi-line string."""
  • 字串常用操作及常用函式
  1. 提取字串特定位置內容
str1 = 'Hello, World!'
str1[0]  # 結果為第一個字符 'H'
  1. 提取特定範圍的內容
str1 = 'Hello, World!'
str1[7:12]  # 提取從索引7到11的子字串 'World'
  1. 計算字串長度
str1 = 'Hello, World!'
len(str1) # 獲取字串長度,結果為 13
  1. 字串拼接
str1 = "Hello"
str2 = "World"
combined = str1 + ", " + str2  
print(combined) # 拼接結果為 Hello, World
  1. 常用函式
  • upper():將字串轉換為大寫。
str1 = 'Hello, World!'
str1.upper()  # 轉換為 'HELLO, WORLD!'
  • lower():將字串轉換為小寫。
str1 = 'Hello, World!'
str1.lower()  # 轉換為 'hello, world!'
  • title():將字串每個單詞的首字母轉換為大寫。
str2 = 'hello, world!'
str2.title()  # 轉換為 'Hello, World!'
  • strip():去除字串兩端的空白字符。
str3 = "  Hello, World!  "
str3.strip()  # 去除兩端空白,結果為 'Hello, World!'
  • replace(x, y):將字串中的 x 替換為 y。
str1 = 'Hello, World!'
str1.replace("World", "Python")  # 結果為 'Hello, Python!'
  • split(separator):根據指定的分隔符將字串分割為子字串列表
str1 = 'Hello, World!'
str1.split(", ")  # 根據 ', ' 分割,結果為 ['Hello', 'World!']
  • join(iterable):將可迭代對象中的字串連接起來,並用字串作為分隔符。
", ".join(['Hello', 'World'])  # 連接為 'Hello, World'
  • find(substring):查找子字串在字串中的首次出現位置。如果未找到,返回 -1。
str1 = 'Hello, World!'
str1.find("World")  # 查找 'World' 的位置,結果為 7
str1.find("Python")  # 查找 'Python' 的位置,結果為 -1
  • f-strings(Python 3.6+):格式化字串的另一種方法。
name = "Python"
f"Hello, {name}!"  # 結果為 'Hello, Python!'

Mapping型別 --- dict
定義:每一個元素都由key和value構成,建構成key:value。用大括號{}建立。字典是可變的,可以在創建後進行修改。

  • 使用大括號 {} 創建
dict1 = {'name': 'Alice', 'age': 30, 'city': 'New York'}
dict1
#結果為 {'name': 'Alice', 'age': 30, 'city': 'New York'}
  • 使用 dict() 函數創建
dict2 = dict(name='Alice', age=30, city='New York')
dict2
#結果為 {'name': 'Alice', 'age': 30, 'city': 'New York'}
  • 從序列(list)創建
dict3 = dict([('name', 'Alice'), ('age', 30), ('city', 'New York')])
dict3
#結果為 {'name': 'Alice', 'age': 30, 'city': 'New York'}
  • 常用操作
  1. 提取特定key對應的value
my_dict = dict([('name', 'Alice'), ('age', 30), ('city', 'New York')])
my_dict['name']  # key 'name' 對應的value,結果為 'Alice'
  1. 新增或更新key所對應的value
my_dict = dict([('name', 'Alice'), ('age', 30), ('city', 'New York')])
my_dict['email'] = 'alice@example.com'  # 添加新的key:value
my_dict
#結果為 {'name': 'Alice', 'age': 30, 'city': 'New York', 'email': 'alice@example.com'}
my_dict['email']  # key 'name' 對應的value,結果為 'alice@example.com'
my_dict['age'] = 31  # 更新已有的key:value
my_dict
#結果為 {'name': 'Alice', 'age': 31, 'city': 'New York', 'email': 'alice@example.com'}
  1. 刪除
my_dict = dict([('name', 'Alice'), ('age', 30), ('city', 'New York')])
del my_dict['city']  # 刪除鍵 'city' 對應的key:value
my_dict
#結果為 {'name': 'Alice', 'age': 31, 'email': 'alice@example.com'}
  1. 查詢key是否存在
my_dict = dict([('name', 'Alice'), ('age', 30), ('city', 'New York')])
'name' in my_dict  # 檢查 'name' 是否存在於字典中,結果為 True
  1. 獲取key或value
my_dict = dict([('name', 'Alice'), ('age', 30), ('city', 'New York')]
my_dict.keys()  # 獲取所有key
#結果為 dict_keys(['name', 'age', 'city'])
my_dict.values() # 獲取所有value
#結果為 dict_values(['Alice', 30, 'New York'])

資料來源:Python說明文件


上一篇
[Day1] Python介紹&環境安裝
下一篇
[Day3] Python條件判斷
系列文
從零開始學Python30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言